from django.conf.urls import url
from django.urls import path
from django.urls import re_path
#from rest_framework.urlpatterns import format_suffix_patterns
from measurement import views
from measurement.views import ReadData, TestApi

import os
from django.views.static import serve
from django.conf import settings

urlpatterns = [
    # 参数管理导出
    # re_path('config/export/', ConfigSettingsModelViewSet.as_view({'get': 'export'})),
    # path('measurement/test/', views.test_django),
    # path('measurement/test_get', views.TestApiFun),
    # path('measurement/test_post', views.TestApiFun2),
    # url(r'^measurement/$', views.probe_data_list),
    # re_path('measurement/testApi', TestApi.as_view({'get': 'TestApiFun'})),
    # path('measurement/testApiGet', TestApi.TestApiFun),
    # re_path('measurement/read_probe_data', ReadData.as_view({'get': 'read_probe_data'})),

    # 注意：各个接口命名中，不能将其他接口作为前缀，例如ReadProbeDataFileToStore 不合理，不会被调用。
    # 接口1：读取探测数据（完成）
    # re_path('measurement/readDataFileApi', ReadData.as_view({'post': 'readDataFileApi'})),
    # 存数据库版本代码，去掉不用20231126
    # re_path('measurement/ReadProbeDataFile', ReadData.as_view({'post': 'read_probe_data'})),
    re_path('measurement/ReadProbeDataToStore', ReadData.as_view({'post': 'read_probe_data_to_store'})),
    # 接口2：数据预处理接口（完成90%）
    re_path('measurement/PreprocessDataFile', ReadData.as_view({'post': 'preprocess_data'})),
    # 接口3：不确定度计算接口
    re_path('measurement/DataUncertaintyAnalysis', ReadData.as_view({'post': 'perform_uncertainty_analysis'})),

    # 接口4：不确定度评定-探测数据文件一键评定界面
    re_path('measurement/MeasurementProbeData', ReadData.as_view({'post': 'measurement_probe_data'})),

    # 接口5："数据分辨率统一接口：对探测数据进行统一分辨率处理（统一到数据预处理接口）
    re_path('measurement/DataStandardReslution', ReadData.as_view({'post': 'data_standard_reslution'})),
    # 接口6："数据分析相关接口，主要提供统计处理算法、缺失值填充方法、多项式拟合算法（部分实现）
    re_path('measurement/DataAnalysisTools', ReadData.as_view({'post': 'data_analysis_tools'})),
    # 接口7："数据比对相关接口，主要提供统计处理算法、缺失值填充方法、多项式拟合算法（部分实现）
    re_path('measurement/DataCompareTools', ReadData.as_view({'post': 'data_compare_tools'})),

    # 接口8：“参考大气廓线文件路径”导入接口（完成）
    re_path('measurement/ImportProbeDataFile', ReadData.as_view({'post': 'read_standard_probe_data_file'})),

    # 接口9：通过不确定度分量文件名称获取不确定度分量名称
    re_path('measurement/getUncertaintyComponent', ReadData.as_view({'post': 'get_uncertainty_component_file'})),

    # 接口10：用户数据文件上传接口
    re_path('measurement/ImportUserDataFile', ReadData.as_view({'post': 'import_user_data_file'})),

    # 接口11：设备参数文件上传接口
    re_path('measurement/ImportDeviceParameterDataFile', ReadData.as_view({'post': 'import_device_parameter_data_file'})),

    # 接口12：调用第三方仿真模拟接口
    re_path('measurement/CallSimulationProgram', ReadData.as_view({'post': 'call_simulation_program'})),

    # 接口13：调用tkinter调用文件打开窗口(测试，Windows系统用)
    re_path('measurement/openDirOrFileFromDesktop', ReadData.as_view({'post': 'open_desktop_dir_or_file'})),

    # 接口14：导出不确定度报告功能
    re_path('measurement/GenReportData', ReadData.as_view({'post': 'data_report_figure_generation_tools'})),

    # 接口15：生成不确定度二维彩图（含等值线）功能
    re_path('measurement/DrawFigureForUncertaintyResult', ReadData.as_view({'post': 'draw_figure_for_uncertainty_result'})),


    # 接口附一：重置任务表状态为0
    re_path('measurement/ResetTaskStatus', ReadData.as_view({'get': 'reset_task_status'})),

    # 设置外链图片
    re_path(r'media/(?P<path>.*)', serve, {'document_root': settings.MEDIA_ROOT}),

    # 设置外链查看原数据文件
    re_path(r'raw_data/(?P<path>.*)', serve, {'document_root': settings.RAW_FILE_STORE_ROOT})
]

# urlpatterns = format_suffix_patterns(urlpatterns):4